package com.cn.kehong.api;


import com.alibaba.fastjson.JSONObject;
import com.cn.kehong.domain.ProductPackage;
import com.cn.kehong.domain.ProductPackageJob;
import com.cn.kehong.domain.ProductPackageVo;
import com.cn.kehong.utils.QueryForm;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface IProductPackageService {

    List<ProductPackageVo> getProductPackageList(QueryForm queryForm)throws Exception;

    List<ProductPackageVo> getPackageListByType(QueryForm queryForm)throws Exception;

    void exportProductPackage(QueryForm queryForm, HttpServletResponse response)throws Exception;

    Map<String, Object> getPackageList(QueryForm queryForm)throws Exception;

    String addProductPackage(ProductPackage productPackage)throws Exception;

    List<ProductPackage> getProductPackageListByStatus(String factoryName)throws Exception;

    ProductPackage getProductPackageByRoom(QueryForm queryForm)throws Exception;

    Map<String, Object> getPackageJobList(List<ProductPackage> productPackages)throws Exception;

    List<ProductPackage> getPackageBatchList(QueryForm queryForm)throws Exception;

    void exportBatch(QueryForm queryForm, HttpServletResponse response)throws Exception;

    void exportRelationship(QueryForm queryForm, HttpServletResponse response)throws Exception;


    String addBatchProductPackageJob(List<ProductPackageJob> packageJobs)throws Exception;

    List<ProductPackageJob> getProductPackageJobsById(String packageId)throws Exception;

    Map<String,Integer> getProductPackageJobByFenjiIds(List<String> fenjiId)throws Exception;

    String updateLockPackageJob(ProductPackageJob productPackageJob)throws Exception;
    String updateCompletePackageJob(ProductPackageJob productPackageJob)throws Exception;
    String updateEndPackage(String id)throws Exception;
    String updatePackageJobCheckCode(String id,String checkCode)throws Exception;

    List<ProductPackage> getProductPackageRecentOneDay(QueryForm queryForm)throws Exception;

    List<ProductPackageJob> getProductJobsNotFinsh()throws Exception;

    String updateProductJobLuTemp(List<ProductPackageJob> productPackageJobs)throws Exception;
    String updateFenjiPackage(String id)throws Exception;

    String printProductPackageJob(String jobId)throws Exception;
    String printProductSample(String jobId)throws Exception;

    List<ProductPackage> getCurrentProductPackageList(QueryForm queryForm)throws Exception;

    ProductPackage getProductPackageDetail(QueryForm queryForm)throws Exception;

    void exportPackageJobList(QueryForm queryForm, HttpServletResponse response)throws Exception;

    String updatePackageJobStauts(ProductPackageJob productPackageJob)throws Exception;


    Map<String, Object> getPackageJobListByTobeApp(QueryForm queryForm)throws Exception;

    List<ProductPackageVo> getPackageJobListByTobe(QueryForm queryForm)throws Exception;

    Map<String, Object> getBzDetailCode(String qrCode)throws Exception;

    Map<String, Object> getProductByCode(QueryForm queryForm)throws Exception;

    //首页接口
    List<JSONObject> getTodayPackageInfo()throws Exception;
}
